1. Field of the Invention
This invention pertains generally to video encoding and decoding, and more particularly to Sample Adaptive Offset (SAO) within high-efficiency video coding (HEVC) systems.
2. Description of Related Art
Demand continues for increased video resolution and associated coding systems which optimize compression of these videos, while being scalable across the range of target resolutions. The latest efforts in this direction by the Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T and ISO/IEC MPEG aim to support ultra high resolution and mobile applications as well as reduce the bitrate compressed in H.264/AVC coding systems, within a High Efficiency Video Coding (HEVC) standard.
Unlike many previous coding systems, HEVC divides frames into Coding Tree Blocks (CTBs) that can be further subdivided into Coding Units (CUs), such as using quadtree segmentation. A coding unit (CU) may have variable sizes depending on video content toward achieving a desired coding efficiency. CUs typically include a luminance component Y and two chroma components, U and V. The size of U and V components relate to the number of samples, and can be the same or different from that of the Y component, as depends upon the video sampling format. The CUs can be further subdivided into Prediction Unit (PU) partitions during intra-prediction and inter-prediction as well as Transform Units (TUs) defined for transform and quantization. Transform units (TU) generally refer to a block of residual data to which a transform is applied when generating transform coefficients.
HEVC introduces new elements over current video coding systems, such as H.264/AVC, and similar codecs. For example, although HEVC still involves motion compensated inter predictions, transforms, and entropy coding, it utilizes either arithmetic coding or variable length coding. In addition, following the deblocking filter is a new Sample Adaptive Offset (SAO) filter. The SAO unit considers the entire frame as a hierarchical quadtree. Quadrants in this quadtree are activated by the SAO transmitting syntax values which each represent an intensity band of pixel values referred to as band offset (BO) or the difference compared to neighboring pixel intensities referred to as edge offset (EO). For each type in SAO (BO and EO), transmitted offset values referred to as SAO offset will be added to the corresponding pixels.
In the HM 5.0 version of HEVC, there are four (4) EO (Edge Offset) modes and two (2) BO (Band Offset) modes for Sample Adaptive Offset (SAO). EO modes transmit four (4) offsets while BO modes transmit sixteen (16) offsets. Therefore, a temporary buffer is needed at the decoder to store SAO offsets for each partition until the image (or parts of it) are decoded.